Publish-subscription (pub/sub) messaging patterns are communication models used in many different industries today. For example, pub/sub is used in banking systems, weather systems, and other systems that require techniques to notify multiple entities of common information. In general, pub/sub is a messaging paradigm where senders (publishers) of messages typically are not programmed to send their messages to specific receivers (subscribers). Rather, published messages can be characterized into classes, without knowledge of what (if any) subscribers there may be. Subscribers express interest in one or more classes and can receive messages that are of interest, without knowledge of what publishers there are. This decoupling of publishers and subscribers can allow for greater scalability and a more dynamic network topology.
One deficiency in pub/sub models is that all of the content (i.e., the body/payload of the message) is sent to all users, and thus the amount of network traffic generated from the publisher is, in the simplest form, the size of the message multiplied by the number of subscribers. Moreover, it can be common for the same set of data to be re-sent multiple times (in different messages) to the same subscriber(s). As such, the volume of the data generated can be large and consume a great deal of network bandwidth.